package com.wjw.java.io;

import java.io.File;
import java.io.IOException;

/**
 * 获取文件信息：常用方法
 */
public class FileInfo {

    public static void main(String[] args) {
        createDirAndFile();
        deleteDirAndFile();
    }

    /**
     * 1.创建目录,并在该目录下创建文件
     */
    public static void createDirAndFile(){
        //创建文件夹:testfile
        File dir = new File("f:\\testfile");
        //如果文件夹不存在
        if (!dir.exists()){
            //就创建文件夹
            boolean flag = dir.mkdir();//用于创建最后一个/后面的文件夹，最后一个/前面的文件夹必须都存在
            //file.mkdirs();//mkdirs方法是无论父文件夹是否存在都会创建
            boolean isDir = dir.isDirectory();
            System.out.println("是文件夹吗:"+isDir);//true

            //如果该文件夹存在,则在该文件夹下创建文件:1.txt
            if(flag){
                File file = new File("f:\\testfile\\1.txt");
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                boolean isFile = file.isFile();
                System.out.println("是文件吗:"+isFile);//true

                String fileName = file.getName();
                System.out.println("文件名称:"+fileName);//1.txt

                String absolutePath = file.getAbsolutePath();
                System.out.println("文件绝对路径:"+absolutePath);//f:\testfile\1.txt

                String parent = file.getParent();
                System.out.println("文件父类路径:"+parent);//f:\testfile

                long length = file.length();
                System.out.println("文件长度:"+length);//汉字为3个字符,字母为1个字符
            }//if
        }//if
    }

    public static void deleteDirAndFile(){
        //删除文件
        File file = new File("f:\\testfile\\1.txt");
        if(file.exists()){
            boolean flag = file.delete();
            if(flag){
                System.out.println(file.getName()+"文件删除成功");
            }else{
                System.out.println("文件删除失败");
            }
        }

        //删除目录
        File dir = new File("f:\\testfile");
        if(dir.exists()){
            boolean flag2 = dir.delete();
            if(flag2){
                System.out.println(dir.getName()+"目录删除成功");
            }else{
                System.out.println("目录删除失败");
            }
        }
    }
}
